home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Enigma Amiga Life 112
/
EnigmaAmiga112CD.iso
/
dalla rivista
/
news
/
documentazione_flyer
/
flyer.doc
next >
Wrap
Text File
|
1999-05-18
|
98KB
|
4,191 lines
TABLE OF CONTENTS
flyer.library/AbortAction
flyer.library/AddAudEKey
flyer.library/AddAudEnv
flyer.library/AddClipCut
flyer.library/AddSeqClip
flyer.library/AppendFields
flyer.library/BeginFindField
flyer.library/ChangeAudio
flyer.library/CheckAction
flyer.library/CloseField
flyer.library/CopyData
flyer.library/CPUDMA
flyer.library/Defaults
flyer.library/DoFindField
flyer.library/EasyOpenWriteField
flyer.library/EndClipCutList
flyer.library/EndFindField
flyer.library/EndHeadList
flyer.library/EndSequence
flyer.library/EndSequenceNew
flyer.library/Error2String
flyer.library/FindDrives
flyer.library/FindFieldAudio
flyer.library/Firmware
flyer.library/FlyerAudioCtrl
flyer.library/FlyerCopyClip
flyer.library/FlyerCopyClipNew
flyer.library/FlyerCreateDir
flyer.library/FlyerDeFrag
flyer.library/FlyerDeFragNew
flyer.library/FlyerDelete
flyer.library/FlyerDirList
flyer.library/FlyerDriveCheck
flyer.library/FlyerDriveInfo
flyer.library/FlyerFileClose
flyer.library/FlyerFileExtend
flyer.library/FlyerFileHSRead
flyer.library/FlyerFileHSWrite
flyer.library/FlyerFileOpen
flyer.library/FlyerFileRead
flyer.library/FlyerFileSeek
flyer.library/FlyerFileWrite
flyer.library/FlyerFormat
flyer.library/FlyerInputSel
flyer.library/FlyerNewFileRead
flyer.library/FlyerNewFileWrite
flyer.library/FlyerPlay
flyer.library/FlyerQuit
flyer.library/FlyerReadCalib
flyer.library/FlyerReadLine
flyer.library/FlyerRecord
flyer.library/FlyerRename
flyer.library/FlyerRenameDisk
flyer.library/FlyerRunning
flyer.library/FlyerSetBits
flyer.library/FlyerSetComment
flyer.library/FlyerSetDate
flyer.library/FlyerStripAudio
flyer.library/FlyerTermination
flyer.library/FlyerWriteCalib
flyer.library/FlyerWriteLine
flyer.library/GetClipInfo
flyer.library/GetFieldClock
flyer.library/GetFrameHeader
flyer.library/GetSMPTE
flyer.library/InitFlyerForce
flyer.library/InitFlyers
flyer.library/Inquiry
flyer.library/LocateField
flyer.library/LockFlyVolList
flyer.library/MakeClipHead
flyer.library/MakeFlyerFile
flyer.library/ModeSelect
flyer.library/ModeSense
flyer.library/NewSequence
flyer.library/OpenReadField
flyer.library/OpenWriteField
flyer.library/PauseAction
flyer.library/PlayMode
flyer.library/PlaySequence
flyer.library/PutFrameHeader
flyer.library/Read10
flyer.library/ReadSize
flyer.library/ReadTest
flyer.library/RecordMode
flyer.library/ReqSense
flyer.library/ResetFlyer
flyer.library/SCSIinit
flyer.library/SCSIreset
flyer.library/SCSIseek
flyer.library/SetFillColor
flyer.library/SetFlooby
flyer.library/SetFlyerTime
flyer.library/SetSerDevice
flyer.library/SkipLines
flyer.library/StartClipCutList
flyer.library/StartHeadList
flyer.library/StillMode
flyer.library/TBCcontrol
flyer.library/ToasterMux
flyer.library/UnLockFlyVolList
flyer.library/VideoCompressModes
flyer.library/VideoParams
flyer.library/VoidAllHeads
flyer.library/VoidCardHeads
flyer.library/VoidClipHead
flyer.library/WaitAction
flyer.library/Write10
flyer.library/WriteTest
flyer.library/AbortAction flyer.library/AbortAction
NAME
AbortAction - abort a previously started action
SYNOPSIS
error = AbortAction(action)
D0 A0
ULONG AbortAction(struct ClipAction *);
FUNCTION
Attempts to abort an action that was previously initiated. Does
nothing if it has already finished.
If ClipAction ptr is NULL, aborts all pending operations to all
Flyers.
INPUTS
action - ptr to ClipAction structure used to start the action
(or NULL to abort everything)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/AddAudEKey flyer.library/AddAudEKey
NAME
AddAudEKey - Adds an Audio Envelop key
SYNOPSIS
err=AddAudEKey(board,AUDEKEY)
D0 D0 A0
ULONG AddAudEKey(UBYTE,APTR);
INPUTS
RESULT
EXAMPLE
NOTES
Now should only be called by AddAudEnv
New for 4.2
BUGS
SEE ALSO
flyer.library/AddAudEnv flyer.library/AddAudEnv
NAME
AddAudEnv - Adds an Audio Envelop to a clip
SYNOPSIS
err=AddAudEnv(board,AudioEnv)
D0 D0 A0
ULONG AddAudEnv(UBYTE,APTR);
INPUTS
RESULT
EXAMPLE
NOTES
Must be sent right after clip is added it sequence
New for 4.3
BUGS
Does not handle chan diff in vol or pan yet.
SEE ALSO
AddAudEKey
flyer.library/AddClipCut flyer.library/AddClipCut
NAME
AddClipCut -- Add an entry to the ClipCut list
SYNOPSIS
error = AddClipCut(subclip)
D0 A0
ULONG AddClipCut(struct ClipAction *);
FUNCTION
Add another sub-clip definition to the currently open ClipCut list.
The fields in this structure give specifics for this sub-clip,
including:
Volume:Path/name for sub-clip
Beginning and ending field numbers
Contents (video and/or audio)
See StartClipCutList for a full description of this processing
mechanism.
INPUTS
subclip - a ClipAction structure specifying the new sub-clip. The
same structure may be used for each call, as all needed
information is copied out of it before this function
returns.
RESULT
EXAMPLE
NOTES
The ClipAction fields AudStartField/VidStartField and
AudFieldCount/VidFieldCount must each match, regardless of the type
of clip specified to make.
BUGS
SEE ALSO
StartClipCutList
EndClipCutList
flyer.library/AddSeqClip flyer.library/AddSeqClip
NAME
AddSeqClip - Add an entry to the Flyer sequence
SYNOPSIS
error = AddSeqClip(clip)
D0 A0
ULONG AddSeqClip(struct ClipAction *);
FUNCTION
Add another event for the Flyer's internal sequencer to play.
Any combination of Video and Audio in/out points is supported
properly, including split audio.
See NewSequence for more info about the Flyer's sequencer.
INPUTS
clip - a ClipAction structure specifying the event. The same
structure may be used for each call, as all needed information
is copied out of it before this function returns.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
EndSequence
EndSequenceNew
NewSequence
PlaySequence
flyer.library/AppendFields flyer.library/AppendFields
NAME
AppendFields - Capture live video field(s) and append to Flyer clip
SYNOPSIS
error = AppendFields(clip)
D0 A0
ULONG AppendFields(struct ClipAction *);
FUNCTION
Captures live video field(s) and appends them to the specified Flyer
video clip. Creates a new clip if it does not already exist.
Grabs correct field(s) from the captured color frames so that any
number of fields may be grabbed without concern for color phase.
Number of fields to record is specified in clip->ca_VidFieldCount.
This function always captures a new color frame. Also, if the number
of fields specified spans more than one color frame, a new one is
captured for every new field 1 needed. For example, if the current
clip needs a field 4 to be appended next and this function is called
with fields=3, a color frame is captured, and field 4 is appended.
Then a NEW color frame is captured and fields 1 and 2 are appended.
If this function is then called again with fields=3, a NEW color
frame is captured and fields 3 and 4 are appended.
INPUTS
clip - a ClipAction structure specifying the clip.
RESULT
EXAMPLE
NOTES
This function is not guaranteed to capture consecutive color frames,
as the processing delays incurred may prohibit this. This may make
capturing more than 4 fields at a time somewhat useless, yet perhaps
interesting.
This function does not fully support the CAF_VIDEO and CAF_AUDIOL/R
flags. It always captures video only without audio. It is also not
currently capable of capturing audio only.
Be careful when appending fields onto a clip that was recorded
"live", as no checking is done to see that the attributes of appended
fields are correct for the rest of the clip (such as VIDEO and/or
AUDIO flags). Since audio is not currently supported by this
function, just be sure that fields are appended only to video-only
clips (or just build new clips using this function).
BUGS
SEE ALSO
flyer.library/BeginFindField flyer.library/BeginFindField
NAME
BeginFindField - Prepare to shuttle/jog a clip
SYNOPSIS
error = BeginFindField(clipaction)
D0 A0
ULONG BeginFindField(struct ClipAction *);
FUNCTION
Prepares Flyer for a shuttle/jog session for the named clip. Call
this when the user brings up the control panel for a clip.
You must prepare a ClipAction structure with the desired parameters
then pass a pointer to it to this routine, which allows the Flyer to
prepare itself internally. All calls to DoFindField, FindFieldAudio,
and EndFindField must be passed this same structure pointer.
See also FindFieldAudio.
The fields which need setup prior to calling BeginFindField:
ca_Volume Ptr to FlyerVolume structure
ca_Channel Video channel to use during session
ca_Flags CAB_VIDEO to see found frames
CAB_AUDIO1 and/or 2 to hear found frames
(here it is legal to set none)
ca_VolSust1
ca_VolSust2 Volume for audio channels
fv_Path Name of clip -- if volume name is prepended,
then the next 3 fields can be left blank
fv_Board Flyer board number
fv_SCSIchannel SCSI channel on which clip resides (optional)
fv_SCSIdrive Drive on SCSI channel on which clip resides
(optional)
This call should always have a matching EndFindField call eventually.
Do not call this twice without an intervening call to EndFindField.
The result from this call should be checked. A 0 value indicates all
went well, the Flyer is prepared for "DoFindField" calls. Any non-0
value indicates a failure, most likely that the named file could not
be found on the specified drive (do not call EndFindField on it).
INPUTS
clipaction - specifies the name of the clip
RESULT
EXAMPLE
NOTES
This call does not return until ready for DoFindField calls (???)
BUGS
SEE ALSO
FindFieldAudio
flyer.library/ChangeAudio flyer.library/ChangeAudio
NAME
ChangeAudio - Change audio parameters of a clip that is in progress
SYNOPSIS
error = ChangeAudio(clipaction)
D0 A0
ULONG ChangeAudio(struct ClipAction *);
FUNCTION
This routine allows a clip that is in progress to have its audio
parameters adjusted. Simply modify the audio field(s) desired
(or the CAB_AUDIO1/2 flags) in the structure used to initially start
the clip, then call this function with a pointer to that structure.
INPUTS
clipaction - pointer to same structure clip was initiated with
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/CheckAction flyer.library/CheckAction
NAME
CheckAction - Check progress of an actions
SYNOPSIS
status = CheckAction(action)
D0 A0
ULONG CheckAction(struct ClipAction *);
FUNCTION
Checks if the operation associated with the provided ClipAction
pointer has finished or not. Returns FERR_OKAY if the action has
finished, or FERR_BUSY if it is still in progress.
Also, starting with rev 4.08, updates the (new) ca_Status field with
current status for the command. This data is only available with
certain commands that use ClipAction structures (still "RSN").
INPUTS
action - pointer to structure that was used to issue the original
command
RESULT
status = FERR_OKAY or FERR_BUSY
EXAMPLE
NOTES
BUGS
SEE ALSO
WaitAction
flyer.library/CloseField flyer.library/CloseField
NAME
CloseField - Closes an OpenReadField or (Easy)OpenWriteField
SYNOPSIS
error = CloseField(action)
D0 A0
ULONG CloseField(struct ClipAction *);
FUNCTION
Closes the field which was previously opened using an OpenReadField,
OpenWriteField, or EasyOpenWriteField call. In the case of a write
session being closed, any unwritten data is written to the clip.
Also, if less than a full field of scan lines was written, fills in
remainder with fill color (usually black).
Returns FERR_FULL if not enough room left in current field to write
any remaining data.
The only structure field which needs setup prior to calling
CloseField:
ca_FldHandle Field handle returned from successful
OpenReadField or (Easy)OpenWriteField call
INPUTS
action - pointer to structure which contains field handle to close
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
EasyOpenWriteField
OpenReadField
OpenWriteField
SetFillColor
flyer.library/CopyData flyer.library/CopyData
NAME
CopyData - Copy data from one location to another
SYNOPSIS
error = CopyData(srcvolume,destvolume,srcaddr,blocks,destaddr)
D0 A0 A1 D0 D1 D2
ULONG CopyData(struct FlyerVolume *,struct FlyerVolume *,ULONG,ULONG,
ULONG);
FUNCTION
Copies a range of data from one drive to another. This currently
works with a start block number and a block count. The start
locations may be different on the src and dest drives. This function
may also be used to move data on the same drive. Handles making a
copy which overlaps original on same drive.
Can also read/write to/from a tape drive by simply using -1 for the
appropriate address (srcaddr or destaddr).
INPUTS
srcvolume - pointer to structure which describes a volume (used to
pick specific Flyer card).
destvolume - pointer to structure which describes a volume (used to
pick specific Flyer card).
srcaddr - SCSI block address on source drive
blocks - number of SCSI blocks to copy
destaddr - SCSI block address on destination drive
RESULT
EXAMPLE
NOTES
May copy slower than "real-time" playback rate if copying to and from
the same drive.
BUGS
SEE ALSO
flyer.library/CPUDMA flyer.library/CPUDMA
NAME
CPUDMA -- Transfer data between DMA memory and CPU memory
SYNOPSIS
error = CPUDMA(board,cpuptr,dmaptr,length,readflag)
D0 D0 A0 A1 D1 D2
ULONG CPUDMA(UBYTE,ULONG,ULONG,UWORD,UBYTE);
FUNCTION
This function transfers blocks of data between the Flyer's DRAM and SRAM
areas. All pointers and sizes are in blocks (512 bytes). "Writes" are
TO SRAM, "reads" are FROM SRAM.
CAUTION! These memory areas are highly private and dangerous to access.
Use only under advisement or based on sample code.
INPUTS
board - specifies the Flyer board (0-3)
cpuptr - CPU address (block)
dmaptr - DMA address (block)
length - length of transfer (in blocks)
readflag - 0=write, 1=read
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/Defaults flyer.library/Defaults
NAME
Defaults - clear given ClipAction structure(s) to default values
SYNOPSIS
error = Defaults(clipaction)
D0 A0
VOID Defaults(struct ClipAction *);
FUNCTION
Clears the given ClipAction structure to default values, as well as
the attached FlyerVolume structure. See structure documentation for
default values.
INPUTS
clipaction - pointer to a ClipAction structure. Will also setup
FlyerVolume structure, if attached.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.h
flyer.library/DoFindField flyer.library/DoFindField
NAME
DoFindField - find a specific field in clip (and view/hear it)
SYNOPSIS
error = DoFindField(clipaction)
D0 A0
ULONG DoFindField(struct ClipAction *);
FUNCTION
Finds the color frame that contains the field number specified in
ca_VidStartField. If the CAB_VIDEO flag was set, the frame's video
will loop on the output channel. Also, if the CAB_AUDIO1/2 flag(s)
were set, the frame's audio will be heard.
Currently, when the user stops in a particular spot, the color frame
loops repeatedly, but the audio (if on) is heard once per new frame
only.
If the return value is non-0, something went wrong (such as the
requested field number is out of range for the clip).
INPUTS
clipaction - same pointer as was used with BeginFindField
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/EasyOpenWriteField flyer.library/EasyOpenWriteField
NAME
EasyOpenWriteField - Open a clip field for writing (easy version)
SYNOPSIS
error = EasyOpenWriteField(action,field,modes,quality)
D0 A0 D0 D1 D2
ULONG EasyOpenWriteField(struct ClipAction *,ULONG,UBYTE,UBYTE);
FUNCTION
Provides an easier front-end for the more complicated OpenWriteField
call.
See the description under OpenWriteField for a full description of
field writing and the "action", "field", and "modes" arguments.
INPUTS
action - pointer to structure which describes a volume and the name
of the clip to operate on.
field - field number of clip (starts at 0). Is a don't care with
some open modes
modes - flags describing how to handle writing field
quality - a number representing the video quality
Currently supported modes, in order of decreasing video quality:
0 (D2) Best quality, worst compression
1 (D2)
2 (SN)
3 (SN)
4 (SN) Worst quality, best compression
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
CloseField
OpenReadField
OpenWriteField
FlyerWriteLine
flyer.library/EndClipCutList flyer.library/EndClipCutList
NAME
EndClipCutList - Finalizes ClipCut list
SYNOPSIS
error = EndClipCutList(doit)
D0 D0
ULONG EndClipCutList(UBYTE);
FUNCTION
Finalizes a ClipCut list that was opened with StartClipCutList. If
the "doit" flag is set, the processing will begin. Otherwise, the
list is thrown away and the original clip remains unchanged.
See StartClipCutList for a full description of this processing
mechanism.
INPUTS
doit - flag: 0 aborts and discards list, 1 starts clip processing
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
StartClipCutList
AddClipCut
flyer.library/EndFindField flyer.library/EndFindField
NAME
EndFindField - Cleanup after a shuttle/jog session
SYNOPSIS
error = EndFindField(clipaction)
D0 A0
ULONG EndFindField(struct ClipAction *);
FUNCTION
This call frees up resources allocated with a BeginFindField call.
Call when the control panel for a clip is put away. You must pass
a pointer to the same structure as was passed to BeginFindField.
If CAF_USEMATTE flag is true in the ClipAction structure, this call
will also put up the specified matte color on the video channel.
A return value of 0 indicates all went well.
INPUTS
clipaction - same pointer as was used for entire shuttle/jog session.
RESULT
EXAMPLE
NOTES
Only matte black is currently supported for CAF_USEMATTE
BUGS
SEE ALSO
flyer.library/EndHeadList flyer.library/EndHeadList
NAME
EndHeadList - Completes list of A/B heads
SYNOPSIS
error = EndHeadList(board,makeit)
D0 D0 D1
ULONG EndHeadList(UBYTE,UBYTE);
FUNCTION
Completes list of A/B heads. If 'makeit' is 0, the list is thrown
away (aborted). Otherwise, the Flyer then begins creating heads.
It may use old clip heads that already exist or create new ones.
Any old heads that are not used in the list are deleted.
INPUTS
board - specifies the Flyer board (0-3)
makeit - flag
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/EndSequence flyer.library/EndSequence
NAME
EndSequence - Finalizes the Flyer's internal sequence
SYNOPSIS
error = EndSequence(board,doit)
D0 D0 D1
ULONG EndSequence(UBYTE, UBYTE);
FUNCTION
Finalizes the sequence definition that was downloaded. Post process-
ing occurs at this time, such as sequence optimization and temporary
data movement. This call, therefore, may take a while to complete.
When it does, the sequence is ready to play (using PlaySequence).
If the "doit" flag is FALSE (0), no post processing is done, but the
sequence is closed (this is required as an "abort" during sequence
downloading).
See NewSequence for more info on Flyer sequencing.
INPUTS
board - specifies the Flyer board (0-3)
doit - flag: 0 aborts and discards sequence, 1 starts post-processing
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
AddSeqClip
EndSequenceNew
NewSequence
PlaySequence
flyer.library/EndSequenceNew flyer.library/EndSequenceNew
NAME
EndSequenceNew -- Finalizes the Flyer's internal sequence (extra features)
SYNOPSIS
error = EndSequenceNew(action, doit)
D0 A0 D0
ULONG EndSequenceNew(struct ClipAction *, UBYTE);
FUNCTION
Identical to EndSequence function, except that it uses a ClipAction structur
e,
which specifies the Flyer board number. This allows some enhanced things
during the sometimes lengthy sequence processing phase, such as the ability
to be run asynchronously, ability to be aborted, and the ability for the
application to obtain status during this phase.
INPUTS
clipaction - specifies the board number in the attached Volume structure
doit - flag: 0 aborts and discards sequence, 1 starts post-processing
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
AddSeqClip
EndSequence
NewSequence
PlaySequence
flyer.library/Error2String flyer.library/Error2String
NAME
Error2String - Convert a Flyer error code into an error string
SYNOPSIS
desc = Error2String(error)
D0
char * Error2String(UBYTE);
FUNCTION
Gives an descriptive string for the supplied Flyer error code.
Simply returns a pointer to the string. DO NOT MODIFY THE DATA IN
THIS STRING.
INPUTS
error - an error code returned by a Flyer call
RESULT
desc - pointer to a static string which describes the error condition
EXAMPLE
NOTES
Does not currently convert some of the more "internal" Flyer errors,
but just gives "???".
BUGS
SEE ALSO
flyer.library/FindDrives flyer.library/FindDrives
NAME
FindDrives -- Find responding drives on SCSI bus
SYNOPSIS
error = FindDrives(flyervolume,buffer)
D0 A0 A1
ULONG FindDrives(struct FlyerVolume *,APTR);
FUNCTION
This function scans one of the Flyer's SCSI busses, looking for
drives at each of the possible unit numbers. An array of data
is returned which gives some rudimentary information about which
unit numbers correspond to a present drive, as well as some info
which is helpful in getting more detailed data (with the Inquiry
command.
INPUTS
volume - pointer to structure which specifies bus to scan for drives
buffer - pointer to an 18 byte buffer which receives results
RESULT
Format of data array:
UBYTE DriveFlags; // '1' bit at (1<<unit) for each drive present
UBYTE pad;
UBYTE Versions[8]; // SCSI versions of each drive found, [x] = unit
UBYTE InqLens[8]; // Inquiry lengths of each drive found, [x] = unit
EXAMPLE
NOTES
BUGS
SEE ALSO
Inquiry
flyer.library/FindFieldAudio flyer.library/FindFieldAudio
NAME
FindFieldAudio - change audio parameters during shuttle/jog session
SYNOPSIS
error = FindFieldAudio(clipaction)
D0 A0
ULONG FindFieldAudio(struct ClipAction *);
FUNCTION
This call allows you to change the status of the audio flag while in
the middle of a shuttle session (overrides the initial audioflag
specified in BeginFindField). To effect the change, modify the
CAB_AUDIO flags in ca_Flags and pass the structure to this routine.
Call this as many times as needed (whenever the user clicks the audio
button on/off), but do not call it outside of the Begin/EndFindField
pair.
A return value of 0 indicates all went well.
INPUTS
clipaction - same pointer as was used for entire shuttle/jog session.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/Firmware flyer.library/Firmware
NAME
Firmware - Download and run software on Flyer CPU
SYNOPSIS
error = Firmware(board,length,data,offset)
D0 D0 D1 A0 D2
ULONG Firmware(UBYTE,ULONG,APTR,ULONG);
FUNCTION
Downloads the provided binary file to the Flyer and executes it
as the controlling software.
INPUTS
board - specifies the Flyer board (0-3)
length - length of data provided
offset - offset address in shared SRAM
data - pointer to binary data
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerAudioCtrl flyer.library/FlyerAudioCtrl
NAME
FlyerAudioCtrl - Sense/control audio rec level/aux input functions
SYNOPSIS
error = FlyerAudioCtrl(board,FlyAudCtrl,oper)
D0 D0 A0 D1
ULONG FlyerAudioCtrl(UBYTE,struct FlyAudCtrl *,UBYTE);
FUNCTION
Provides access to the Flyer's audio subsystem. This provides a
means of smartly setting the input gain on record, as well as control
over the Flyer's auxilliary audio inputs.
The "oper" flags describe which portions of the FlyAudCtrl structure
to apply. This allows modification of individual values, and the
ability to sense input levels without changing any values.
INPUTS
board - specifies the Flyer board (0-3)
FlyAudCtrl - pointer to FlyAudCtrl structure
oper - various flags indicating what kind of operation(s) to perform:
FACOF_SENSE -- update LeftSense/RightSense values
FACOF_SENSE8 -- update LeftSense/RightSense with 8-bit values
FACOF_SETGAIN -- set input gain (for recording)
FACOF_SETSRC -- set the input selector mux
FACOF_SETMIX -- set auxilliary channel mixing values
Any combination of these operations can be specified.
RESULT
EXAMPLE
NOTES
The LeftSense and RightSense values from FACOF_SENSE are interpreted:
0 -- over -1.0 dB underrange
1 -- 0 to -1.0 dB underrange
2 -- 0 to 1.0 dB overrange
3 -- over 1.0 dB overrange
FACOF_SENSE8 causes Left/RightSense to contain 8 bit peak-reading
values (low 8 bits truncated off)
BUGS
SEE ALSO
flyer.h
flyer.library/FlyerCopyClip flyer.library/FlyerCopyClip
NAME
FlyerCopyClip - Fast copy a flyer clip
SYNOPSIS
error = FlyerCopyClip(srcvolume,destvolume)
D0 A0 A1
ULONG FlyerCopyClip(struct FlyerVolume *,struct FlyerVolume *);
FUNCTION
Makes a copy of a Flyer clip using high speed copying (independent of
Amiga host operating system). Will fail if filename is not found
on the source volume or if the destination filename already exists on
the destination volume. Will not create subdirectories for the
destination name, so ensure entire path exists before starting copy.
Source and destination volumes may be the same drive, but copying
will be slower.
INPUTS
srcvolume - pointer to structure which describes the source clip's
path/name and the volume on which it is found.
destvolume - pointer to structure which describes the destination
path/name and the volume on which to create it. Must
always contain the path/name, even if not renaming clip
during copy.
RESULT
EXAMPLE
NOTES
Both source and destination volumes must be attached to the same
Flyer card.
BUGS
SEE ALSO
FlyerCopyClipNew
flyer.library/FlyerCopyClipNew flyer.library/FlyerCopyClipNew
NAME
FlyerCopyClipNew -- Fast copy a flyer clip (w/status & abort capabilities)
SYNOPSIS
error = FlyerCopyClipNew(srcaction,destvolume)
D0 A0 A1
ULONG FlyerCopyClipNew(struct ClipAction *,struct FlyerVolume *);
FUNCTION
Identical to FlyerCopyClip function, except that it uses a ClipAction struct
ure
to specify the source, which adds the ability to run it asynchronously, abil
ity
to be aborted, and the ability to obtain status during a copy.
INPUTS
srcaction - pointer to structure which describes the source volume and clip
name. "ReturnTime" and "Status" fields are also used.
destvolume - pointer to structure which describes the destination
path/name and the volume on which to create it. Must
always contain the path/name, even if not renaming clip
during copy.
RESULT
EXAMPLE
NOTES
Both source and destination volumes must be attached to the same
Flyer card.
BUGS
SEE ALSO
FlyerCopyClip
flyer.library/FlyerCreateDir flyer.library/FlyerCreateDir
NAME
FlyerCreateDir -- create a sub-directory on a Flyer drive
SYNOPSIS
error = FlyerCreateDir(clipaction)
D0 A0
ULONG FlyerCreateDir(struct ClipAction *);
FUNCTION
INPUTS
clipaction - specifies volume/path/name of the directory to create
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerDeFrag flyer.library/FlyerDeFrag
NAME
FlyerDeFrag - De-fragment hard drive
SYNOPSIS
error = FlyerDeFrag(volume)
D0 A0
ULONG FlyerDeFrag(struct FlyerVolume *);
FUNCTION
Begins defragmentation process on specified drive.
INPUTS
volume - pointer to structure which describes the volume to defrag
RESULT
EXAMPLE
NOTES
Currently accepts no parameters and cannot be interrupted
BUGS
Reports of bugs. Unable to reproduce to date...
SEE ALSO
FlyerDeFragNew
flyer.library/FlyerDeFragNew flyer.library/FlyerDeFragNew
NAME
FlyerDeFragNew -- De-fragment hard drive (extra features)
SYNOPSIS
error = FlyerDeFragNew(clipaction)
D0 A0
ULONG FlyerDeFragNew(struct ClipAction *);
FUNCTION
Begins defragmentation process on specified drive. This is identical to
FlyerDeFrag function, except that this one uses a ClipAction structure
to specifies the Flyer drive. This allows some enhanced things during
defragmentation, such as the ability to be run asynchronously, ability
to be aborted, and the ability for the application to obtain status
while it's occurring.
INPUTS
clipaction - specifies the drive using an attached FlyerVolume structure
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
FlyerDeFrag
flyer.library/FlyerDelete flyer.library/FlyerDelete
NAME
FlyerDelete -- Delete a file from a Flyer drive
SYNOPSIS
error = FlyerDelete(clipaction)
D0 A0
ULONG FlyerDelete(struct ClipAction *);
FUNCTION
INPUTS
clipaction - specifies the path/name of the file to delete
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerDirList flyer.library/FlyerDirList
NAME
FlyerDirList -- return first/next entry in a directory
SYNOPSIS
error = FlyerDirList(flyervolume,grip,objinfoptr,firstflag,fsonly)
D0 A0 D0 A1 D1 D2
ULONG FlyerDirList(struct FlyerVolume *,ULONG,struct ClipInfo *,
UBYTE,UBYTE);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
grip - grip of directory
objinfoptr - Pointer to ClipInfo structure to receive info
firstflag - 0 if first call, 1 for each additional
fsonly - 0 for full information, 1 for just FileSys info
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerDriveCheck flyer.library/FlyerDriveCheck
NAME
FlyerDriveCheck - check if the specified drive has anything in it
SYNOPSIS
error = FlyerDriveCheck(volume)
D0 A0
ULONG FlyerDriveCheck(struct FlyerVolume *);
FUNCTION
Checks to see if the specified board/channel/drive has media loaded.
Note that you must use the FVF_USENUMS flags, since the use of a
volume name is not logical here.
INPUTS
volume - pointer to structure which describes a volume
RESULT
error - FERR_OKAY or FERR_VOLNOTFOUND
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerDriveInfo flyer.library/FlyerDriveInfo
NAME
FlyerDriveInfo - Return general information about a drive
SYNOPSIS
error = FlyerDriveInfo(volume,volinfo)
D0 A0 A1
ULONG FlyerDriveInfo(struct FlyerVolume *,struct FlyerVolInfo *);
FUNCTION
This returns general information about the drive, including the
volume name, total number of blocks, number of blocks free,
size of largest contiguous block, and free block size if DeFrag
would be performed.
If volptr is NULL, just fills in info in FlyerVolume structure only.
INPUTS
volume - pointer to structure which specifies volume
volinfo - pointer to structure to receive information about volume
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFileClose flyer.library/FlyerFileClose
NAME
FlyerFileClose -- close a file
SYNOPSIS
error = FlyerFileClose(flyervolume,fileID)
D0 A0 D0
ULONG FlyerFileClose(struct FlyerVolume *,ULONG);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
FlyerFileOpen
flyer.library/FlyerFileExtend flyer.library/FlyerFileExtend
NAME
FlyerFileExtend -- Extend an open Flyer file without have to write data
SYNOPSIS
error = FlyerFileExtend(flyervolume,fileID,size)
D0 A0 D0 D1
ULONG FlyerFileExtend(struct FlyerVolume *,ULONG,ULONG,UBYTE *,
ULONG *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
size - number of bytes to extend by.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFileHSRead flyer.library/FlyerFileHSRead
NAME
FlyerFileHSRead -- read blocks from an open Flyer file
SYNOPSIS
error = FlyerFileHSRead(flyervolume,fileID,startblk,blkcount,buffer)
D0 A0 D0 D1 D2 A1
ULONG FlyerFileHSRead(struct FlyerVolume *,ULONG,ULONG,ULONG,UBYTE *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
startblk - Block number to begin reading on
blkcount - Number of blocks to read
buffer - pointer to buffer in amiga fastram
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFileHSWrite flyer.library/FlyerFileHSWrite
NAME
FlyerFileHSWrite -- write to an open Flyer file
SYNOPSIS
error = FlyerFileHSWrite(flyervolume,fileID,startblk,blkcount,buffer)
D0 A0 D0 D1 D2 A1
ULONG FlyerFileHSWrite(struct FlyerVolume *,ULONG,ULONG,ULONG,UBYTE *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
startblk - Block number to begin writing on
blkcount - Number of blocks to write
buffer - pointer to buffer in amiga fastram
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFileOpen flyer.library/FlyerFileOpen
NAME
FlyerFileOpen -- open a file on a Flyer drive for reading/writing
SYNOPSIS
error = FlyerFileOpen(clipaction)
D0 A0
ULONG FlyerFileOpen(struct ClipAction *);
FUNCTION
INPUTS
clipaction - specifies the name of the file to open
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFileRead flyer.library/FlyerFileRead
NAME
FlyerFileRead -- read from an open Flyer file
SYNOPSIS
error = FlyerFileRead(flyervolume,fileID,size,buffer,actual)
D0 A0 D0 D1 A1 A2
ULONG FlyerFileRead(struct FlyerVolume *,ULONG,ULONG,UBYTE *,
ULONG *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
size - number of bytes to read
buffer - pointer to buffer to receive data
actual - pointer to variable to receive count of actual bytes read
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFileSeek flyer.library/FlyerFileSeek
NAME
FlyerFileSeek -- seek to a given position in a file
SYNOPSIS
error = FlyerFileSeek(flyervolume,fileID,pos_ext,pos,mode,posptr,oldposptr)
D0 A0 D0 D1 D2 D3 A1 A2
ULONG FlyerFileSeek(struct FlyerVolume *,ULONG,DLONG,UBYTE,DLONG *,
DLONG *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
pos_ext - requested new file position (per 'mode' below)(high 32 bits)
pos - requested new file position (per 'mode' below)(low 32 bits)
mode - seek mode to apply to 'pos' (FLYER_POS_xxx)
posptr - pointer to variable to receive new file position
oldposptr - pointer to variable to receive old file position
RESULT
EXAMPLE
NOTES
I don't like passing individual ULONGs for the requested position
and pointers to DLONGS for the results, but our lack of address registers
means we can't do it the consistent way. This way does have the advantage
of changing the prototype for the function enough to warn us if an older
version of fileseek is being called
BUGS
SEE ALSO
flyer.h
flyer.library/FlyerFileWrite flyer.library/FlyerFileWrite
NAME
FlyerFileWrite -- write to an open Flyer file
SYNOPSIS
error = FlyerFileWrite(flyervolume,fileID,size,buffer,actual)
D0 A0 D0 D1 A1 A2
ULONG FlyerFileWrite(struct FlyerVolume *,ULONG,ULONG,UBYTE *,
ULONG *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
size - number of bytes to write
buffer - pointer to buffer which contains data
actual - pointer to variable to receive count of actual bytes written
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerFormat flyer.library/FlyerFormat
NAME
FlyerFormat - High-level format a drive with the Flyer's filesystem
SYNOPSIS
error = FlyerFormat(volume,name,datestamp,blocks,flags)
D0 A0 A1 A2 D0 D1
ULONG FlyerFormat(struct FlyerVolume *,char *,struct DateStamp *,
ULONG,UBYTE);
FUNCTION
This function does a high-level format on a drive connected to the
Flyer. Not all sectors are read/write tested, so this is a "quick"
format. The format procedure normally uses the entire drive, but
this can be reduced to avoid using slower parts of the drive.
INPUTS
volume - NULL string, specifies drive to format
name - pointer to a null-terminated string to use for the volume name
datestamp - pointer to an AmigaDOS DateStamp structure to use as the
drive's creation date
blocks - NULL for entire drive, or the number of sectors to use for
video data. WARNING! This does not actually prohibit the
Flyer from using the remaining space, but gives a cutoff
point beyond which no video clips may be placed. Non time-
critical data may eventually be placed in this "slow" region.
flags - FVIF_xxx flags to request to be applied to this drive
(specifically FVIF_VIDEOREADY and FVIF_AUDIOREADY). FlyerFormat
will test the speed of the drive and clear the video flag if it
does not find it capable. This allows drives to be targeted
as data only, data/audio, or data/audio/video.
RESULT
EXAMPLE
NOTES
Do not use an fv_Path string to specify the drive. Specify a NULL
string and specify the exact drive specifically with fv_SCSIdrive.
This will prevent formatting the wrong drive if two exist with
identical volume names!
BUGS
SEE ALSO
flyer.h
flyer.library/FlyerInputSel flyer.library/FlyerInputSel
NAME
FlyerInputSel - Select Flyer video input sources
SYNOPSIS
error = FlyerInputSel(board,video,sync)
D0 D0 D1 D2
ULONG FlyerInputSel(UBYTE,UBYTE,UBYTE);
FUNCTION
Specifies what video channel to use for recording to the Flyer and
where to get sync.
INPUTS
board - specifies the Flyer board (0-3)
video - video source to record
FI_Camcorder = Flyer camcorder input (TBC required)
FI_SVHS = Flyer SVHS input (TBC required)
FI_Toaster1 = Toaster input 1
FI_Toaster2 = Toaster input 2
FI_ToasterMain = Toaster Main bus output
FI_ToasterPV = Toaster Preview bus output
sync - video source to use as a reference
FS_ToasterMain = Toaster Main output
FS_Toaster1 = Toaster input 1
RESULT
EXAMPLE
NOTES
Any changes to video or sync source using this command should be
given sufficient time to "settle" before beginning to record.
BUGS
SEE ALSO
FlyerTermination
ToasterMux
flyer.library/FlyerNewFileRead flyer.library/FlyerNewFileRead
NAME
FlyerNewFileRead -- read from an open Flyer file
SYNOPSIS
error = FlyerNewFileRead(flyervolume,fileID,size,buffer,actual)
D0 A0 D0 D1 A1 A2
ULONG FlyerNewFileRead(struct FlyerVolume *,ULONG,ULONG,UBYTE *,
ULONG *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
size - number of bytes to read
buffer - pointer to buffer to receive data
actual - pointer to variable to receive count of actual bytes read
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerNewFileWrite flyer.library/FlyerNewFileWrite
NAME
FlyerNewFileWrite -- write to an open Flyer file
SYNOPSIS
error = FlyerFileHSWrite(flyervolume,fileID,size,buffer,actual)
D0 A0 D0 D1 A1 A2
ULONG FlyerNewFileWrite(struct FlyerVolume *,ULONG,ULONG,UBYTE *,
ULONG *);
FUNCTION
INPUTS
volume - pointer to same structure as passed to FlyerFileOpen
fileID - ID returned from FlyerFileOpen call
size - number of bytes to write
buffer - pointer to buffer which contains data
actual - pointer to variable to receive count of actual bytes written
RESULT
actual - passed in a2 is address to return actual amt written.
error - error code is returned in d0.
EXAMPLE
NOTES
more error conditions can be incountered here
FERR_FULL,'Drive full'
FERR_CANTEXTEND,'Cannot extend file'
maybe but, scsi problems are real trouble and file shouldn't open for
write if drive/file protected.
FERR_PROTECTED,'Drive write-protected'
FERR_INCOMPLETE,'SCSI tranfer not completed fully'
FERR_WRITEPROT,'File write-protected'
FERR_INUSE,'Disk/object in use'
REALLY should just check for errors when writing to file!
BUGS
SEE ALSO
flyer.library/FlyerPlay flyer.library/FlyerPlay
NAME
FlyerPlay - Play a video/audio clip
SYNOPSIS
error = FlyerPlay(clipaction)
D0 A0
ULONG FlyerPlay(struct ClipAction *);
FUNCTION
Plays a video/audio clip as specified in the structure whose pointer
is given. The definition of this structure is in "Flyer.h".
This call can be made to return at different times, depending on the
value of ReturnTime.
If the video channel or SCSI channel needed to accomplish this action
are in use when this clip needs to begin, the PermissFlags indicate
what actions the Flyer can take to free up the necessary resource(s).
CAPB_STEALOURVIDEO allows the Flyer to stop a clip on the video
channel specified for this new play. CAPB_KILLOTHERVIDEO allows the
Flyer to stop clips on other video channels if needed to gain access
to the SCSI drive for this new clip.
If the CAPB_ERRIFBUSY flag is set, this call will return with error
FERR_CHANINUSE if the clip cannot be played without waiting for other
resources. If this flag is not set, the Flyer will delay playback if
needed while waiting for resources it needs.
When using a ReturnTime of RTT_STOPPED, you may modify/recycle the
ClipAction structure once this call returns. For RTT_IMMED and
RTT_STARTED, you must not modify the ClipAction structure until the
clip stops or is aborted. Use AbortAction() to abort playback, and
CheckProgress(), CheckAction(), or WaitAction() to determine when
it's safe to reuse the structure.
If CAF_USEMATTE flag is true in the ClipAction structure, the video
channel this function uses will change to the matte color specified
in MatteY,MatteI,MatteQ fields when the clip finishes or is stopped.
INPUTS
clipaction - pointer to structure containing all information needed
for playback, and to receive results when done.
RESULT
EXAMPLE
NOTES
Only matte black is currently supported for CAF_USEMATTE
BUGS
SEE ALSO
flyer.library/FlyerQuit flyer.library/FlyerQuit
NAME
FlyerQuit -- Stop Flyer execution, return to boot ROM
SYNOPSIS
error = FlyerQuit(board)
D0 D0
ULONG FlyerQuit(UBYTE);
FUNCTION
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerReadCalib flyer.library/FlyerReadCalib
NAME
FlyerReadCalib - Inspect the Flyer's calibration registers
SYNOPSIS
error = FlyerReadCalib(board,item,valueptr)
D0 D0 D1 A0
ULONG FlyerReadCalib(UBYTE,UWORD,WORD *);
FUNCTION
Reads the specified Flyer calibration register. See flyer.h for
the "item" values (CALIB_xxxx). Value placed at pointer "valueptr".
INPUTS
board - specifies the Flyer board (0-3)
item - which register to change (see flyer.h)
valueptr - pointer to a UWORD to fill in with the value
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
FlyerWriteCalib
flyer.library/FlyerReadLine flyer.library/FlyerReadLine
NAME
FlyerReadLine - Read a scan line from a field previously opened
SYNOPSIS
error = FlyerReadLine(action,buffer)
D0 A0 A1
ULONG FlyerReadLine(struct ClipAction *,UBYTE *);
FUNCTION
Decompresses next scan line from open field and transfers into
caller's buffer (must be big enough to receive 752 bytes). NTSC line
21 is the first line read from the field, and 262 is the last. Any
extra calls will fill the buffer with the fill color (usually black).
This function does software emulation of the Flyer's hardware which
converts VTASC-compressed data into D2 data, including FIR filtering.
The fields which need setup prior to calling FlyerReadLine:
ca_FldHandle - Field handle from successful OpenReadField
ca_ReturnTime - RT_xxx value desired (not currently supported)
INPUTS
action - pointer to structure which contains the field handle to read
from and the return time for this call.
buffer - buffer to receive composite scan line data
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
CloseField
OpenReadField
SetFillColor
FlyerWriteLine
flyer.library/FlyerRecord flyer.library/FlyerRecord
NAME
FlyerRecord - Record a video/audio clip
SYNOPSIS
error = FlyerRecord(clipaction)
D0 A0
ULONG FlyerRecord(struct ClipAction *);
FUNCTION
Records a video/audio clip as specified in the structure whose
pointer is given. The definition of this structure is in "Flyer.h".
Except when ReturnTime = RTT_STOPPED, recording can be stopped at any
time with the AbortAction() command (see below).
Do not call with both CAB_AUDIO1/2 and CAB_VIDEO flags clear, as this
is nonsensical.
If the video channel or SCSI channel needed to accomplish this action
are in use when this clip needs to begin, the PermissFlags indicate
what actions the Flyer can take to free up the necessary resource(s).
CAPB_STEALOURVIDEO allows the Flyer to stop a clip on the video
channel specified for this new record. CAPB_KILLOTHERVIDEO allows
the Flyer to stop clips on other video channels if needed to gain
access to the SCSI drive for this new clip.
If the CAPB_ERRIFBUSY flag is set, this call will return with error
FERR_CHANINUSE if the clip cannot be recorded without waiting for
other resources. If this flag is not set, the Flyer will delay
recording if needed while waiting for resources it needs.
When using a ReturnTime of RTT_STOPPED, you may modify/recycle the
ClipAction structure once this call returns. For RTT_IMMED and
RTT_STARTED, you must not modify the ClipAction structure until the
clip stops or is aborted. Use AbortAction() to abort recording, and
CheckProgress(), CheckAction(), or WaitAction() to determine when
it's safe to reuse the structure.
INPUTS
clipaction - pointer to structure containing all information needed
for recording, and to receive results when done.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerRename flyer.library/FlyerRename
NAME
FlyerRename -- rename a file/dir on a Flyer drive
SYNOPSIS
error = FlyerRename(oldclip,newgrip,newname)
D0 A0 D0 A1
ULONG FlyerRename(struct ClipAction *,ULONG,char *);
FUNCTION
INPUTS
oldclip - specifies the path/name of the file to rename
newgrip - base grip to which 'newname' is relative
newname - new path/name for file (relative to 'newgrip')
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerRenameDisk flyer.library/FlyerRenameDisk
NAME
FlyerRenameDisk -- rename a Flyer drive volume
SYNOPSIS
error = FlyerRenameDisk(flyervolume,newname)
D0 A0 A1
ULONG FlyerRenameDisk(struct FlyerVolume *,char *);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
newname - pointer to new name string for volume
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerRunning flyer.library/FlyerRunning
NAME
FlyerRunning -- test if Flyer firmware is downloaded and running
SYNOPSIS
error = FlyerRunning(board)
D0 D0
ULONG FlyerRunning(UBYTE);
FUNCTION
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerSetBits flyer.library/FlyerSetBits
NAME
FlyerSetBits -- set protect bits for dir/file
SYNOPSIS
error = FlyerSetBits(flyervolume,grip,bits)
D0 A0 D0 D1
ULONG FlyerSetBits(struct FlyerVolume *,ULONG,ULONG);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive/path/name of file
grip - grip of file/dir
bits - new bits (32)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerSetComment flyer.library/FlyerSetComment
NAME
FlyerSetComment -- set comment for dir/file
SYNOPSIS
error = FlyerSetComment(flyervolume,grip,comment)
D0 A0 D0 A1
ULONG FlyerSetComment(struct FlyerVolume *,ULONG,char *);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive/path/name of file
grip - grip of file/dir
comment - new comment string
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerSetDate flyer.library/FlyerSetDate
NAME
FlyerSetDate -- set date for file/dir
SYNOPSIS
error = FlyerSetDate(flyervolume,grip,days,minutes,ticks)
D0 A0 D0 D1 D2 D3
ULONG FlyerSetDate(struct FlyerVolume *,ULONG,ULONG,ULONG,ULONG);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive/path/name of file
grip - grip of file/dir
days - date: days
minutes - date: minutes
ticks - date: ticks
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerStripAudio flyer.library/FlyerStripAudio
NAME
FlyerStripAudio - Strip audio from a clip, make an audio-only clip
SYNOPSIS
error = FlyerStripAudio(srcvolume,destvolume)
D0 A0 A1
ULONG FlyerStripAudio(struct FlyerVolume *,struct FlyerVolume *);
FUNCTION
Creates a new clip containing only the audio from the source clip.
Will fail if the source clip is not found or does not contain audio.
Destination clip must not already exist on the destination volume, or
an error will result.
Both source and destination volumes must be attached to the same
Flyer card.
INPUTS
srcvolume - pointer to structure which describes the source clip name
and the volume on which it is found.
destvolume - pointer to structure which describes the destination
clip name and the volume on which to place it.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/FlyerTermination flyer.library/FlyerTermination
NAME
FlyerTermination - Set Flyer's video termination on/off
SYNOPSIS
error = FlyerTermination(board,flags)
D0 D0 D1
ULONG FlyerTermination(UBYTE,UBYTE);
FUNCTION
Specifies which of the Flyer's 4 video terminators to turn on.
INPUTS
board - specifies the Flyer board (0-3)
flags - One flag for each of 4 terminators (0=off, 1=on)
Bit 0 = Toaster Input 1 terminator
Bit 1 = Toaster Input 3 terminator
Bit 2 = Toaster Input 4 terminator
Bit 3 = Toaster Main terminator
Power-up default is Inputs 3 & 4 terminated, Main and Input 1 not
terminated.
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
FlyerInputSel
ToasterMux
flyer.library/FlyerWriteCalib flyer.library/FlyerWriteCalib
NAME
FlyerWriteCalib - Manually set Flyer's calibration registers
SYNOPSIS
error = FlyerWriteCalib(board,item,value,saveflag)
D0 D0 D1 D2 D3
ULONG FlyerWriteCalib(UBYTE,UWORD,WORD,UBYTE);
FUNCTION
Sets the value of one of the calibration registers. See flyer.h for
the "item" values (CALIB_xxxx). Starting with the Rev 4 board, these
values are kept in non-volatile memory on-board the Flyer. To also
save the specified value to memory, set the "saveflag" argument.
INPUTS
board - specifies the Flyer board (0-3)
item - which register to change (see flyer.h)
value - item-specific value
saveflag - 0=just use value, 1=also save to non-volatile memory
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
FlyerReadCalib
flyer.library/FlyerWriteLine flyer.library/FlyerWriteLine
NAME
FlyerWriteLine - Write a scan line to a field previously opened
SYNOPSIS
error = FlyerWriteLine(action,buffer)
D0 A0 A1
ULONG FlyerWriteLine(struct ClipAction *,UBYTE *);
FUNCTION
Transfers scan line data from caller's buffer, compresses it, and
places in the open clip as specified in (Easy)OpenWriteField call.
Expects 752 bytes from caller's buffer. NTSC line 21 is expected on
the first call to this function, and 262 on the last. Any extra
calls will be ignored.
This function does software emulation of the Flyer's hardware which
converts D2 data into VTASC-compressed data, including FIR filtering.
The fields which need setup prior to calling FlyerWriteLine:
ca_FldHandle - Field handle from successful OpenWriteField
or EasyOpenWriteField.
ca_ReturnTime - RT_xxx value desired (not currently supported)
Returns FERR_FULL if out of room in current field
INPUTS
action - pointer to structure which contains the field handle to
write to and the return time for this call.
buffer - contains composite scan line data (will be modified)
RESULT
EXAMPLE
NOTES
Currently modifies the data at the "buffer" pointer
BUGS
SEE ALSO
CloseField
EasyOpenWriteField
OpenWriteField
FlyerReadLine
flyer.library/GetClipInfo flyer.library/GetClipInfo
NAME
GetClipInfo - get information about a specific clip
SYNOPSIS
error = GetClipInfo(volume,clipinfo)
D0 A0 A1
ULONG GetClipInfo(struct FlyerVolume *,struct ClipInfo *);
FUNCTION
Fills in the provided ClipInfo structure with information about the
specified clip. Of particuar interest are: ci_fields equals the
number of fields the clip contains, ci_flags describes the type of
data in the clip. See OIB_HASVIDEO and OIB_HASAUDIO in "Flyer.h".
Data files (such as icons) will have neither flag set.
You MUST initialize ci_len to the value CI_sizeof before calling this
function. This is to ensure that future Flyer software does not
break old application software.
A non-zero return code indicates a failure (structure is not filled
in). This call does not return until complete. The structure may be
modified or reused in any way after it returns.
This routine is useful for obtaining info about a clip which has no
icon.
Also retrieves any starting SMPTE time-code from the clip, which can
be read using GetSMPTE.
INPUTS
volume - pointer to a FlyerVolume structure which describes the clip
clipinfo - pointer to structure to contain clip information
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
GetSMPTE
flyer.library/GetFieldClock flyer.library/GetFieldClock
NAME
GetFieldClock - Retrieve the Flyer's field counter
SYNOPSIS
error = GetFieldClock(clockptr)
D0 A0
ULONG GetFieldClock(ULONG *);
FUNCTION
This returns the Flyer's internal field counter by plugging it into
the provided pointer to a ULONG. If more than one Flyer exists, they
are automatically sync'd together by the flyer.library. Therefore,
no board number or volume name is required for this function.
INPUTS
clockptr - pointer to ULONG to receive the clock value
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/GetFrameHeader flyer.library/GetFrameHeader
NAME
GetFrameHeader -- Read Frame Header structure from clip
SYNOPSIS
error = GetFrameHeader(action,buffer)
D0 A0 A1
ULONG GetFrameHeader(struct ClipAction *,APTR);
FUNCTION
Retrieves a copy of a specific FrameHeader structure from an audio
or video clip. FrameHeader chosen is the one that contains the field
number specified in ca_VidStartField (even for audio clips).
Places data at the structure pointed to by "buffer".
If the return value is not FERR_OKAY, something went wrong (such as
the clip was not found, or the requested field number is out of range).
Note: on success, clipaction->ca_StartBlk will contain the actual
block number where the frame header is found, and
clipaction->ca_Volume->fv_SCSIdrive will contain the actual drive number.
INPUTS
clipaction - specifies the volume/clip name and the desired field number
buffer - Pointer to caller's structure to fill in
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
PutFrameHeader
flyer.library/GetSMPTE flyer.library/GetSMPTE
NAME
GetSMPTE - Return SMPTE time code information
SYNOPSIS
error = GetSMPTE(board,SMPTEinfo)
D0 D0 A0
ULONG GetSMPTE(UBYTE,struct SMPTEinfo *);
FUNCTION
This returns the last SMPTE time code information retrieved from a
clip.
This is generally used after a "DoFindField" call to retrieve the
SMPTE information related to that field, or after a GetClipInfo call
to get the start SMPTE time for the clip.
INPUTS
board - specifies the Flyer board (0-3)
SMPTEinfo - pointer to SMPTEinfo structure to receive time code info
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/InitFlyerForce flyer.library/InitFlyerForce
NAME
InitFlyerForce - setup the Flyer card using a caller specified chipID
SYNOPSIS
error = InitFlyerForce(lock, id)
D0 D0 D5
ULONG InitFlyerForce(BPTR, ULONG);
FUNCTION
Perform setup on all Flyer boards present (programs all chips,
places all video channels in play mode, playing black). Must be
called from a process so that library can access DOS functions.
Looks for all chip files needed in the directory which 'lock' is on,
with the given chipID
INPUTS
lock - lock on directory in which to look for chip files
id - ChipID to use to locate chip files to use in initializing the Flyer
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/InitFlyers flyer.library/InitFlyers
NAME
InitFlyers - setup all attached Flyer cards
SYNOPSIS
error = InitFlyers(lock)
D0 D0
ULONG InitFlyers(BPTR);
FUNCTION
Perform setup on all Flyer boards present (programs all chips,
places all video channels in play mode, playing black). Must be
called from a process so that library can access DOS functions.
Looks for all chip files needed in the directory which 'lock' is on.
INPUTS
lock - lock on directory in which to look for chip files
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/Inquiry flyer.library/Inquiry
NAME
Inquiry -- Do SCSI Inquiry command
SYNOPSIS
error = Inquiry(flyervolume,buffersize,buffer)
D0 A0 D0 A1
ULONG Inquiry(struct FlyerVolume *,UBYTE,APTR);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
buffersize - size of buffer provided (in bytes)
buffer - pointer to buffer to receive Inquiry data
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/LocateField flyer.library/LocateField
NAME
LocateField - find a specific field in clip
SYNOPSIS
error = LocateField(clipaction)
D0 A0
ULONG LocateField(struct ClipAction *);
FUNCTION
Finds the color frame that contains the field number specified in
ca_VidStartField. This differs from the Begin/Do/EndFindField calls
in that this function just locates the field -- it does not attempt
to play its video or audio. Also, the Begin/Do/End trio are designed
for multiple calls on the same clip (such as for jog/shuttling),
whereas this function is much simpler for just one lookup operation.
If the return value is not FERR_OKAY, something went wrong (such as
the requested field number is out of range for the clip).
INPUTS
clipaction - structure that contains the following data
ca_Volume -- ptr to FlyerVolume structure which contains
the board, SCSI drive, and pathname for clip
ca_VidStartField -- field number to locate
RESULT
If ERR_OKAY returned, clipaction->ca_StartBlk will contain the
block number of the frame header for the color frame which
contains the requested field
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/LockFlyVolList flyer.library/LockFlyVolList
NAME
LockFlyVolList - obtain lock on internal Flyer volumes list
SYNOPSIS
ptr = LockFlyVolList()
D0
struct MinList *LockFlyVolList(void);
FUNCTION
Returns a pointer to a MinList containing the currently mounted Flyer
volumes. Also locks this list so that you may safely inspect it. No
modifications to the list are allowed. Be sure to release lock using
UnLockFlyVolList.
A return value of 0 indicates a failure.
INPUTS
RESULT
ptr - pointer to a MinList of Flyer Volume Node structures
(or 0 for failure)
EXAMPLE
NOTES
BUGS
SEE ALSO
UnLockFlyVolList
flyer.library/MakeClipHead flyer.library/MakeClipHead
NAME
MakeClipHead - Define an A/B head for the specified clip
SYNOPSIS
error = MakeClipHead(clipaction)
D0 A0
ULONG MakeClipHead(struct ClipAction *);
FUNCTION
Define an A/B head for the specified clip. Use the ca_VidStartField,
ca_AudStartField, ca_VidFieldCount, and ca_AudFieldCount entries to
specify where the head should start and how long it should be.
This function can be used in two ways. If used by itself, the A/B
head is made immediately. If used between StartHeadList and
EndHeadList calls, the definition is just added to an internal list
which will be created when EndHeadList is called with makeit=1. The
second method can optimize your A/B heads and can take advantage of
heads already in existence to shorten its work load. The immediate
method of MakeClipHead cannot do any of these optimizations.
INPUTS
clipaction - specifies the clip and the in/out points
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
VoidAllHeads
VoidCardHeads
VoidClipHead
flyer.library/MakeFlyerFile flyer.library/MakeFlyerFile
NAME
MakeFlyerFile - Create an empty file on a Flyer drive
SYNOPSIS
error = MakeFlyerFile(volume,blocks,startptr)
D0 A0 D0 A1
ULONG MakeFlyerFile(struct FlyerVolume *,ULONG,ULONG *);
FUNCTION
Creates a file of a specified size on a Flyer drive and adds it to
the drive's filesystem. The start block for the file data area is
returned to the caller, who may then fill the file with something
useful.
Previous library versions would only create files of a size which was
a multiple of 512. Starting rev 4.04, MakeFlyerFile can be used to
create a file of any size, but for backward compatibility, here's how
you must specify the size:
Write the byte size into the variable that 'startptr' points to
Pass 'blocks' value of 0
Call MakeFlyerFile()
The value pointed to by 'startptr' has the same meaning on return as
before.
INPUTS
volume - pointer to structure which describes a volume and name for
new file
blocks - size of file in blocks (512 bytes each)
startptr - ptr to a ULONG to receive the start block reserved for
file's data. This ULONG also contains the byte size of the file
to create, providing that 'blocks' is 0.
RESULT
EXAMPLE
NOTES
Errors will be returned if not enough contiguous space for the file,
or if a file of the same name already exists on that drive/path.
BUGS
SEE ALSO
FlyerCopyClip, FlyerCopyClipNew
flyer.library/ModeSelect flyer.library/ModeSelect
NAME
ModeSelect -- Do SCSI ModeSelect command
SYNOPSIS
error = ModeSelect(flyervolume,buffersize,buffer,PFbyte)
D0 A0 D0 A1 D1
ULONG ModeSelect(struct FlyerVolume *,UBYTE,APTR,UBYTE);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
buffersize - size of buffer provided (in bytes)
buffer - pointer to buffer which contains ModeSelect data
PFbyte - SCSI PageFormat byte
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/ModeSense flyer.library/ModeSense
NAME
ModeSense -- Do SCSI ModeSense command
SYNOPSIS
error = ModeSense(flyervolume,buffersize,page,buffer)
D0 A0 D0 D1 A1
ULONG ModeSense(struct FlyerVolume *,UBYTE,UBYTE,APTR);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
buffersize - size of buffer provided (in bytes)
page - Mode page code to read
buffer - pointer to buffer to receive ModeSense data
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/NewSequence flyer.library/NewSequence
NAME
NewSequence - Prepare Flyer for a sequence download
SYNOPSIS
error = NewSequence(board)
D0 D0
ULONG NewSequence(UBYTE);
FUNCTION
Used to begin sending a sequence definition to the Flyer. Then,
using other calls, each piece of the sequence is defined, the
sequence is "closed", and then it may be played with one call. This
is allows the Flyer to do much more complicated sequences
successfully than by using FlyerPlay calls in a double-buffered
fashion (which is now only supported in a limited way).
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
AddSeqClip
EndSequence
EndSequenceNew
PlaySequence
flyer.library/OpenReadField flyer.library/OpenReadField
NAME
OpenReadField - Open a field from a clip for reading
SYNOPSIS
error = OpenReadField(action,field,modes)
D0 A0 D0 D1
ULONG OpenReadField(struct ClipAction *,ULONG,UBYTE);
FUNCTION
Locates specified field of named clip and prepares to decompress
and transfer each scan line of the field using the FlyerReadLine
call.
This function, if successful, places a valid ca_FldHandle in the
ClipAction structure provided. This same structure must be used for
any other calls relating to this open field, or you must manually
copy the value in ca_FldHandle into the ClipAction structure you wish
to use.
No compression information is required, as this information is
embedded in the clips themselves.
INPUTS
action - pointer to structure which describes a volume and the name
of the clip to operate on.
field - field number of clip (starts at 0)
modes - various flags
FRF_HALFLINES - allows reading the half lines. Without this
flag set, half lines are skipped
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
CloseField
EasyOpenWriteField
OpenWriteField
FlyerReadLine
flyer.library/OpenWriteField flyer.library/OpenWriteField
NAME
OpenWriteField - Open a field from a clip for writing
SYNOPSIS
error = OpenWriteField(action,field,modes,compinfo)
D0 A0 D0 D1 A1
ULONG OpenWriteField(struct ClipAction *,ULONG,UBYTE,
struct VidCompInfo *);
FUNCTION
Prepares to transfer and compress each scan line of a field using the
FlyerWriteLine call. How the new data is integrated into the clip
depends on the "modes" flags specified:
FWF_NEW (field = dont care)
Writes the first field of a new clip (deletes old if exists)
FWF_APPEND (field = dont care)
Appends another field onto the clip
FWF_REWRITE (field = n)
Overwrites an existing field in the clip (must be same size or
smaller)
FWF_APPEND + FWF_REWRITE (field = dont care)
Replaces the last field. Used for retrying with different
compression
FWF_APPEND + FWF_REWRITE + FWF_FRAME (field = n)
Rewrite multiple fields in the last color frame (each field
sequentially). Field must be in the last color frame. Used
for retrying entire color frame with different compression.
FWF_REWRITE + FWF_FRAME (field = n)
Rewrite multiple fields in a color frame (each field
sequentially). Used for retrying entire color frame with
different compression.
FWF_HALFLINES allows writing of half lines. Without this flag set,
half lines are skipped and padded.
"compinfo" points to a structure containing information about how to
compress the data. If this pointer is NULL, the Flyer will default
to its best algorithm.
This function, if successful, places a valid ca_FldHandle in the
ClipAction structure provided. This same structure must be used for
any other calls relating to this open field, or you must manually
copy the value in ca_FldHandle into the ClipAction structure you wish
to use.
This function may fail and return FERR_FULL if not enough contiguous
storage exists at the end of the clip to handle appending a field.
Also, field writing may fail if the data produced is too large for
the hardware to play. An FERR_FULL error from FlyerWriteLine
indicates that the field needs to be compressed harder in order to
fit. If this happens, the field should be closed and reopened using
a different level of compression or algorithm. Also set the
FWF_REWRITE mode flag to indicate to replace the previous data.
When replacing fields in the middle of a clip, the compressed data
must be the same size or smaller, as no space insertion is currently
supported. If an FERR_FULL occurs in this case, you must either
retry with a tighter compression method or write the original field
data back into the clip. Otherwise, this field will flash
unpredictable data near the bottom when the clip is played back.
Always creates clips with integral color frames regardless of how
many fields are written. If a clip is left with less than a full
color frame at the end, the remaining fields in the color frame are
temporariliy padded with NTSC black. These pad fields are auto-
matically replaced when new fields are appended.
INPUTS
action - pointer to structure which describes a volume and the name
of the clip to operate on.
field - field number of clip (starts at 0). Is a don't care with
some open modes (see below)
modes - flags describing how to handle writing field
FWF_NEW - Erase existing clip (if any), start new clip
FWF_APPEND - Append field to clip
FWF_REWRITE - Re-write over field
FWF_FRAME - Re-write field (must redo all following fields in
the same color frame)
compinfo - pointer to a VidCompInfo structure (or null for defaults)
RESULT
EXAMPLE
NOTES
Replacing fields in the middle of clips not fully tested
BUGS
SEE ALSO
CloseField
EasyOpenWriteField
OpenReadField
FlyerWriteLine
flyer.library/PauseAction flyer.library/PauseAction
NAME
PauseAction - pause/resume a previously started action
SYNOPSIS
error = PauseAction(action,pauseflag)
D0 A0 D0
ULONG PauseAction(struct ClipAction *,UBYTE pauseflag);
FUNCTION
Pauses or resumes a Flyer action that has been previously started.
Provide a pointer to the ClipAction structure used to start the
action. No error occurs if action is already in the state specified
(already paused, for example). AbortAction can be used to terminate
a paused action.
Does nothing if the action has already finished.
INPUTS
action - ptr to ClipAction structure used to start the action
pauseflag - 1 to pause, 0 to resume
RESULT
EXAMPLE
NOTES
Currently works only with FlyerRecord actions
BUGS
SEE ALSO
AbortAction
flyer.library/PlayMode flyer.library/PlayMode
NAME
PlayMode - Ready Flyer for playback
SYNOPSIS
error = PlayMode(board)
D0 D0
ULONG PlayMode(UBYTE);
FUNCTION
Readies the Flyer for playback. This takes about 1/2 second.
Return value indicates success (0) or the error code on failure
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
You must currently ensure that no playing or recording is occurring
before calling this function
BUGS
SEE ALSO
flyer.library/PlaySequence flyer.library/PlaySequence
NAME
PlaySequence - Play the Flyer's internal sequence
SYNOPSIS
error = PlaySequence(board,basetime)
D0 D0 D1
ULONG PlaySequence(UBYTE, ULONG);
FUNCTION
Starts the sequence playing that was previously downloaded to the
Flyer. "basetime" is the time (on the Flyer's clock) to begin. All
components in the sequence are relative to this start time.
This call returns immediately so that takes, effects may be done
synchronous with the sequence. No other interaction with the Flyer
is required (or recommended) for the sequence to play, other than
aborting the sequence early (with AbortSequence).
See NewSequence for more info on Flyer sequencing.
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
AddSeqClip
EndSequence
EndSequenceNew
NewSequence
flyer.library/PutFrameHeader flyer.library/PutFrameHeader
NAME
PutFrameHeader -- Write Frame Header structure back to clip
SYNOPSIS
error = PutFrameHeader(action,buffer)
D0 A0 A1
ULONG PutFrameHeader(struct ClipAction *,APTR);
FUNCTION
Replaces a specific FrameHeader structure in an audio or video clip
with the data structure provided. FrameHeader chosen is the one
that contains the field number specified in ca_VidStartField (even
for audio clips).
If the return value is not FERR_OKAY, something went wrong (such as
the clip was not found, or the requested field number is out of range).
CAUTION! This function is intended to be used to read/modify/write
a Frame Header (using GetFrameHeader). It is dangerous if not
stupid to hand-craft a header from scratch and plug it in. Doing
so is very difficult and is bound to cause problems. Also, be very
cautious when modifying data in this structure. The only thing
that's safe/useful to modify is the SerData buffer and associated
control values. All else is toxic, flammable, noxious, etc.
INPUTS
clipaction - specifies the volume/clip name and the desired field number
buffer - Pointer to caller's structure to fill in
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
GetFrameHeader
flyer.library/Read10 flyer.library/Read10
NAME
Read10 -- Transfer data from SCSI drive to DMA memory
SYNOPSIS
error = Read10(action,blocks,lba,buffer)
D0 A0 D0 D1 D2
ULONG Read10(struct ClipAction *,WORD,ULONG,ULONG);
FUNCTION
INPUTS
clipaction - specifies the volume and return method
blocks - blocks to transfer
lba - starting lba
buffer - DMA buffer start (block) to receive data
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/ReadSize flyer.library/ReadSize
NAME
ReadSize -- Read SCSI drive capacity
SYNOPSIS
error = ReadSize(flyervolume,countptr,lengthptr)
D0 A0 A1 A2
ULONG ReadSize(struct FlyerVolume *,ULONG *,ULONG *);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
countptr - pointer to ULONG to receive drive size in blocks
lengthptr - pointer to ULONG to receive logical block size (bytes)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/ReadTest flyer.library/ReadTest
NAME
ReadTest -- Do a read speed test on a Flyer SCSI drive
SYNOPSIS
error = ReadTest(flyervolume,blocks,repeat,lba,dblflag)
D0 A0 D0 D1 D2 D3
ULONG ReadTest(struct FlyerVolume *,ULONG,ULONG,ULONG,UBYTE);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
blocks - size of each transfer (in blocks)
repeat - number of transfers to perform
lba - starting lba on drive
dblflag - 0=simple test, 1=double-buffered test
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/RecordMode flyer.library/RecordMode
NAME
RecordMode - Ready Flyer for recording
SYNOPSIS
error = RecordMode(board)
D0 D0
ULONG RecordMode(UBYTE);
FUNCTION
Readies the Flyer for recording. This takes about 1/2 second.
Return value indicates success (0) or the error code on failure
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
You must currently ensure that no playing or recording is occurring
before calling this function
BUGS
SEE ALSO
flyer.library/ReqSense flyer.library/ReqSense
NAME
ReqSense -- Do SCSI RequestSense command
SYNOPSIS
error = ReqSense(flyervolume,buffersize,buffer)
D0 A0 D0 A1
ULONG ReqSense(struct FlyerVolume *,UBYTE,APTR);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
buffersize - size of data buffer provided (in bytes)
buffer - pointer to buffer to receive Sense data
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/ResetFlyer flyer.library/ResetFlyer
NAME
ResetFlyer -- Reset Flyer to known state
SYNOPSIS
error = ResetFlyer(board,flags)
D0 D0 D1
ULONG ResetFlyer(UBYTE,ULONG);
FUNCTION
INPUTS
board - specifies the Flyer board (0-3)
flags - misc flags (unused)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/SCSIinit flyer.library/SCSIinit
NAME
SCSIinit -- Test and Initialize SCSI bus on Flyer
SYNOPSIS
error = SCSIinit(flyervolume)
D0 A0
ULONG SCSIinit(struct FlyerVolume *);
FUNCTION
INPUTS
volume - pointer to structure which specifies bus to init
RESULT
EXAMPLE
NOTES
Set v_SCSIdrive to the SCSI bus number x 8
Also set 'FVF_USENUMS' in v_Flags
BUGS
SEE ALSO
flyer.library/SCSIreset flyer.library/SCSIreset
NAME
SCSIreset -- Hardware reset all SCSI busses on Flyer
SYNOPSIS
error = SCSIreset(board)
D0 D0
ULONG SCSIreset(UBYTE);
FUNCTION
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/SCSIseek flyer.library/SCSIseek
NAME
SCSIseek -- Do SCSI seek command
SYNOPSIS
error = SCSIseek(flyervolume,lba)
D0 A0 D0
ULONG SCSIseek(struct FlyerVolume *,ULONG);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
lba - lba to which to seek
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/SetFillColor flyer.library/SetFillColor
NAME
SetFillColor - set fill color to use for blank video
SYNOPSIS
error = SetFillColor(action)
D0 A0
ULONG SetFillColor(struct ClipAction *);
FUNCTION
Sets the specified Matte color as the fill color to use for blank
video, such as when skipping lines with SkipLines or closing the
write before all scan lines are transferred.
This color remains valid for the context of this field only.
Defaults to black when a new field is opened.
The fields which need setup prior to calling SetFillColor:
ca_FldHandle - Field handle returned from successful
OpenReadField or (Easy)OpenWriteField call
ca_ReturnTime - RT_xxx value desired (not currently supported)
ca_MatteY - Luminance value
ca_MatteI - Signed I value
ca_MatteQ - Signed Q value
INPUTS
action - pointer to structure which contains:
The field handle with which to associate this fill color
The fill color (in YIQ color space)
The return time for this call
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
CloseField
EasyOpenWriteField
OpenWriteField
FlyerWriteLine
flyer.library/SetFlooby flyer.library/SetFlooby
NAME
SetFlooby - used to set various Flyer internal values
SYNOPSIS
error = SetFlooby(board,chan,item,value)
D0 D0 D1 D2 D3
ULONG SetFlooby(UBYTE,UBYTE,UBYTE,ULONG);
FUNCTION
Selectively changes Flyer internal parameters by specifying the
parameter number and its new value.
INPUTS
board - specifies the Flyer board (0-3)
chan - video channel (0 or 1)
item - the parameter number to change
value - the value to assign to the parameter
RESULT
EXAMPLE
NOTES
All parameters are currently private.
Name derived from the term "FloobyDust"
BUGS
SEE ALSO
flyer.library/SetFlyerTime flyer.library/SetFlyerTime
NAME
SetFlyerTime - sets the Flyer's internal clock to a preset date/time
SYNOPSIS
error = SetFlyerTime(datestamp)
D0 A0
ULONG SetFlyerTime(struct DateStamp *);
FUNCTION
Sets the internal real-time clock of all attached Flyers to the date
and time specified in the structure whose pointer is given. They
maintain this date/time for the purpose of date-stamping files.
INPUTS
datestamp - pointer to an AmigaDOS DateStamp structure
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/SetSerDevice flyer.library/SetSerDevice
NAME
SetSerDevice - Select type of device attached to a Flyer serial port
SYNOPSIS
error = SetSerDevice(board,port,type,device)
D0 D0 D1 D2 D3
ULONG SetSerDevice(UBYTE,UBYTE,UBYTE,UBYTE);
FUNCTION
Specifies the type and model of device which the user wishes to
attach to one of the Flyer's two serial ports. These ports can be
used for a variety of things such as SMPTE read, SMPTE write, MIDI,
serial control, etc. The Flyer will take care of details such as the
baud rate, format conversion, etc. for all devices defined in Flyer.h
INPUTS
board - specifies the Flyer board (0-3)
port - specifies the serial port (0 = A, 1 = B)
type - type of serial device (SERDEVTYPE_xxx in Flyer.h)
device - device model (SERDEV_xxx in Flyer.h)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/SkipLines flyer.library/SkipLines
NAME
SkipLines - Seek past scan lines in a field previously opened
SYNOPSIS
error = SkipLines(action,lines)
D0 A0 D0
ULONG SkipLines(struct ClipAction *,UWORD);
FUNCTION
Seeks past a number of scan lines in a field previously opened. If
opened for reading, skips over unwanted scan lines. If opened for
writing, fills skipped lines with fillcolor (usually black).
Returns FERR_FULL if out of room in current field when writing.
The fields which need setup prior to calling SkipLines:
ca_FldHandle - Field handle returned from successful
- OpenReadField or (Easy)OpenWriteField call
ca_ReturnTime - RT_xxx value desired (not currently supported)
INPUTS
action - pointer to structure which contains the field handle to work
with and the return time for this call.
lines - number of scan lines to skip
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
CloseField
EasyOpenWriteField
OpenReadField
OpenWriteField
FlyerReadLine
SetFillColor
FlyerWriteLine
flyer.library/StartClipCutList flyer.library/StartClipCutList
NAME
StartClipCutList - Prepares to perform clip cutting
SYNOPSIS
error = StartClipCutList(clip,flags)
D0 A0 D0
ULONG StartClipCutList(struct ClipAction *,UBYTE);
FUNCTION
Used to begin clip cutting and processing for the clip specified.
After opening the list with this function, use AddClipCut to make
each subclip definition, then close the list using EndClipCutList.
Two major types of processing can currently be accomplished using
this mechanism: destructive and non-destructive. The destructive
processing will make the listed sub-clips and delete any unused parts
of the original, doing a regional de-frag operation so as to not
fragment the drive. The non-destructive operation leaves the
original intact and makes new sub-clips.
INPUTS
clip - specifies the master clip from which to make sub-clip(s)
flags - specifies the type of processing (see Flyer.h CCL_xxx flags)
RESULT
EXAMPLE
NOTES
Currently only one ClipCut list may be open at a time.
BUGS
SEE ALSO
AddClipCut
EndClipCutList
flyer.library/StartHeadList flyer.library/StartHeadList
NAME
StartHeadList - Prepares Flyer for list of A/B heads
SYNOPSIS
error = StartHeadList(board)
D0 D0
ULONG StartHeadList(UBYTE);
FUNCTION
Prepares specified Flyer to compose a list of A/B heads.
Create a list like this when opening an existing project. This
will be more efficient than just submitting head definitions one
at a time, because it allows the Flyer to do some optimizations.
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/StillMode flyer.library/StillMode
NAME
StillMode - Set video looping method for video channel
SYNOPSIS
error = StillMode(board,chan,mode)
D0 D0 D1 D2
ULONG StillMode(UBYTE,UBYTE,UBYTE);
FUNCTION
Used to specify the type of video looping to use on stilled video.
The default at power-up is MODE_FRAME.
INPUTS
volume - pointer to structure which describes a volume (used to
pick specific Flyer card).
chan - video channel (0 or 1)
mode - video looping mode:
MODE_FIELD - loops a single field of video
MODE_PAIR - loops an interlaced pair of video fields
MODE_FRAME - loops an entire color frame (default)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/TBCcontrol flyer.library/TBCcontrol
NAME
TBCcontrol - Sense/control TBC functions
SYNOPSIS
error = TBCcontrol(board,TBCctrl,oper)
D0 D0 A0 D1
ULONG TBCcontrol(UBYTE,struct TBCctrl *,UBYTE);
FUNCTION
Provides access to the (optional) Flyer TBC module.
The "oper" flags describe which portions of the TBCctrl structure to
apply. This allows somewhat simplified use of this command without
always needing to set all values for each call, as well as the
ability to check the TBC status flags without modifying anything.
To determine if the TBC module is present, use this function setting
only the TBCOF_STATUS oper flag, then check the "status" flags
returned for TBCSF_MODULE to indicate that one was detected.
INPUTS
board - specifies the Flyer board (0-3)
TBCctrl - pointer to TBCctrl structure
oper - various flags indicating what kind of operation(s) to perform:
TBCOF_STATUS -- get status flags
TBCOF_MODES -- set modes, flags, and muxes
TBCOF_ADJUST -- set adjustment values
Any combination of these operations can be specified.
RESULT
EXAMPLE
NOTES
If no TBC module is present, an error will be reported if this
command is used for anything except to get status
BUGS
SEE ALSO
FlyerInputSel
flyer.h
flyer.library/ToasterMux flyer.library/ToasterMux
NAME
ToasterMux - Set Flyer/Toaster multiplex switches
SYNOPSIS
error = ToasterMux(board,input3,input4,preview)
D0 D0 D1 D2 D3
ULONG ToasterMux(UBYTE,UBYTE,UBYTE,UBYTE);
FUNCTION
Controls how the Flyer interacts with the Toaster's inputs 3 and 4
and preview output.
INPUTS
board - specifies the Flyer board (0-3)
input3 - video source fed to switcher input 3
0 = Toaster input 3
1 = Flyer video output (channel 0)
input4 - video source fed to switcher input 4
0 = Toaster input 4
1 = Flyer video output (channel 1)
preview - video fed to preview output
0 = Toaster preview bus
1 = Flyer camcorder input
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
FlyerInputSel
FlyerTermination
flyer.library/UnLockFlyVolList flyer.library/UnLockFlyVolList
NAME
UnLockFlyVolList - release lock on Flyer volumes list
SYNOPSIS
error = UnLockFlyVolList(list)
D0 A0
ULONG UnLockFlyVolList(struct MinList *);
FUNCTION
Releases the lock obtained using LockFlyVolList.
Like most other library functions, a return value of FERR_OKAY
indicates success.
INPUTS
list - pointer to list (previously obtained with LockFlyVolList)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
LockFlyVolList
flyer.library/VideoCompressModes flyer.library/VideoCompressModes
NAME
VideoCompressModes - set video compression modes and strategy
SYNOPSIS
error = VideoCompressModes(board,bestmode,worstmode,strategy)
D0 D0 D1 D2 D3
ULONG VideoCompressModes(UBYTE,UBYTE,UBYTE,UBYTE);
FUNCTION
Sets the range of video compression qualities that the Flyer may use
when recording video. The default is all modes. But this may be
pared down by narrowing this range or one specific mode may be
forced.
Strategy picks the strategy the Flyer should use for auto-switching
between modes. The only supported value currently is 0, which uses
compressed data size to switch modes.
INPUTS
board - specifies the Flyer board (0-3)
bestmode - specifies the best video compression quality mode to use
worstmode - specifies the worst video compression quality mode to use
Currently supported modes, in order of decreasing video quality:
0 (D2) Best quality, worst compression
1 (D2)
2 (SN)
3 (SN)
4 (SN) Worst quality, best compression
strategy - always 0 for now (size based strategy)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/VideoParams flyer.library/VideoParams
NAME
VideoParams - set video compression parameters
SYNOPSIS
err=VideoParams(board,vchan,mintol,maxtol,freq,vidlen,FIRset,special)
D0 D0 D1 D2 D3 D4 D5 D6 D7
ULONG VideoParams(UBYTE,UBYTE,UBYTE,UBYTE,UBYTE,UWORD,UBYTE,UBYTE);
FUNCTION
Sets the default video compression parameters for each video channel.
For auto-adjusting compression modes, this is only used for the first
field of video.
INPUTS
board - specifies the Flyer board (0-3)
vchan - video channel (0 or 1)
mintol - minimum tolerance mode (0 best, 6 worst)
maxtol - maximum tolerance mode
freq - random noise frequency
vidlen - desired length of compressed field data (in SCSI blocks)
FIRset - FIR presets to use
0 = custom
1 = 25%
2 = 33%
3 = 50%
4 = 100%
special - for testing only
RESULT
EXAMPLE
NOTES
Use only tolerance modes 0, 1, 4, 5, and 6
****** This may change as we finalize how the user's controls the
amount of compression ******
BUGS
SEE ALSO
flyer.library/VoidAllHeads flyer.library/VoidAllHeads
NAME
VoidAllHeads - Remove all A/B heads from all Flyers
SYNOPSIS
error = VoidAllHeads()
D0
ULONG VoidAllHeads(void);
FUNCTION
Removes all A/B heads from all drives attached to all Flyers.
INPUTS
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
MakeClipHead
VoidCardHeads
VoidClipHead
flyer.library/VoidCardHeads flyer.library/VoidCardHeads
NAME
VoidCardHeads - Remove all A/B heads for the Flyer card specified
SYNOPSIS
error = VoidCardHeads(board)
D0 D0
ULONG VoidCardHeads(UBYTE board);
FUNCTION
Removes all A/B heads from drives attached to specified Flyer card
INPUTS
board - specifies the Flyer board (0-3)
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
MakeClipHead
VoidAllHeads
VoidClipHead
flyer.library/VoidClipHead flyer.library/VoidClipHead
NAME
VoidClipHead - Remove an A/B head for the specified clip
SYNOPSIS
error = VoidClipHead(clipaction)
D0 A0
ULONG VoidClipHead(struct ClipAction *);
FUNCTION
Removes an A/B head for the specified clip. Must exactly match the
range of a previously defined head (with MakeClipHead) or this
does nothing.
INPUTS
clipaction - specifies clip and in/out points of head to remove
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
MakeClipHead
VoidAllHeads
VoidCardHeads
flyer.library/WaitAction flyer.library/WaitAction
NAME
WaitAction - Wait for a previously issued action to complete
SYNOPSIS
error = WaitAction(action)
D0 A0
ULONG WaitAction(struct ClipAction *);
FUNCTION
Does not return until the specified action is complete.
INPUTS
action - pointer to structure that was used to issue the original
command
RESULT
error - return code (from command)
EXAMPLE
NOTES
BUGS
SEE ALSO
CheckAction
flyer.library/Write10 flyer.library/Write10
NAME
Write10 -- Transfer data from DMA memory to SCSI drive
SYNOPSIS
error = Write10(action,blocks,buffer,lba)
D0 A0 D0 D1 D2
ULONG Write10(struct ClipAction *,WORD,ULONG,ULONG);
FUNCTION
INPUTS
clipaction - specifies the volume and the return method
blocks - blocks to transfer
buffer - DMA buffer start (block) of data to write
lba - starting lba
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO
flyer.library/WriteTest flyer.library/WriteTest
NAME
WriteTest -- Do a write speed test on a Flyer SCSI drive
SYNOPSIS
error = WriteTest(flyervolume,blocks,repeat,lba,dblflag)
D0 A0 D0 D1 D2 D3
ULONG WriteTest(struct FlyerVolume *,ULONG,ULONG,ULONG,UBYTE);
FUNCTION
INPUTS
volume - pointer to structure which specifies drive
blocks - size of each transfer (in blocks)
repeat - number of transfers to perform
lba - starting lba on drive
dblflag - 0=simple test, 1=double-buffered test
RESULT
EXAMPLE
NOTES
BUGS
SEE ALSO